package xu.htgl.mapper;

import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Mapper;
import xu.htgl.common.Result;
import xu.htgl.entity.Admin;

import java.util.List;

@Mapper
public interface AdminMapper {
    /**
     * 查询所有管理员
     * @param admin
     * @return
     */
    List<Admin> selectAll(Admin admin);

    /**
     * 分页和模糊(未用到)
     * @param pageNum
     * @param pageSize
     * @param admin
     * @return
     */
    List<Admin> page(Integer pageNum, Integer pageSize, Admin admin);

    /**
     * 新增管理员
     * @param admin
     * @return 插入成功的记录数
     */
    int save(Admin admin);

    /**
     * 根据用户名查询管理员
     * @param username
     * @return 管理员对象，如果不存在则返回 null
     */
    Admin selectByUsername(String username);

    /**
     * 修改管理员信息
     * @param admin
     * @return
     */
    int update(Admin admin);

    int deleteById(Integer id);

    /**
     * 批量删除管理员
     * @param ids 要删除的管理员的 id 列表
     * @return 删除成功的记录数
     */
    int batchDelete(List<Integer> ids);

    Admin selectById(String id);

    int updateById(Admin admin);

    /**
     * 单独更新管理员头像
     * @param admin 包含 id 和 avatar 的管理员对象
     * @return 影响的行数
     */
    int updateAvatar(Admin admin);
}